List offline machines in the Tailscale panel - #9233
Open
cschaba wants to merge 1 commit into
Open
Conversation
The machines list only ever showed peers with Online true, so a tailnet where most devices are asleep looked nearly empty — 3 rows out of 12 on my own tailnet — and the panel's scrolling never came into play. List every peer, online ones first and each group alphabetical, with the offline rows dimmed and marked "Offline" so the ones you can act on still read first. Exit nodes stay online-only, since routing through a machine that is down only breaks connectivity, and Taildrop's send button now hides for an offline peer instead of offering a transfer that cannot land. Copy actions keep working for every machine.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The problem
Model.jsonly pushed peers withOnlinetrue into the machines list. On a tailnet where most devices are asleep the panel looks nearly empty — on mine it showed 3 rows out of 12 machines — and because the content never exceeded the panel'sStyle.space(560)cap, theFlickablehad nothing to scroll and the list read as if it were capped at three items.The change
Every peer is listed. Online machines come first, each group sorted alphabetically, so the ones you can act on still read first. Offline rows are dimmed and their subtitle is marked
Offline.Two behaviours stay online-only:
canSendFilesnow returns false for an offline peer, so the send button hides instead of offering a transfer that cannot land.Copy actions (IP, name, DNS name) keep working for every machine, which is most of the reason to want an offline machine in the list at all.
Tests
test/shell.d/tailscale-test.shhad three assertions encoding the online-only behaviour; they now assert the new ordering, and a new assertion covers theOnlineflag reaching the panel. The existing "lists only online tailnet exit nodes" assertion now genuinely exercises the exit-node guard, since the fixture's offline exit node is no longer filtered out earlier.bash test/shellpasses apart from five files that fail identically on an unmodifiedquattrohere (config,snapper,theme-install-guards,unowned-system-paths,windows-vm-mount-boundary) and look environment-dependent.🤖 Generated with Claude Code